草庐IT

C++ Qt 窗口定位

全部标签

c++ - Qt 小部件在其他非 qt 窗口之上

我正在为我在Windows操作系统中使用的商业程序开发一个插件(我无法更改它)。在这个插件中,我创建了一个Qt小部件,当在主程序中单击一个按钮时,qt小部件就会出现。我的问题是小部件出现在主程序窗口的下方,而我希望它位于主程序窗口的上方。如有必要,它可以始终保持在最前面。Qt::WindowStaysOnTopHint似乎在这里不起作用,因为我没有Qtparent。我找到了一种将它放在顶部的方法,在Qtwiki之后,并且我创建了一个在小部件构造函数之后调用的方法:voidRadiationPatternWidget::setWindowTopMost(){#ifdefQ_WS_WIN3

windows - 杀死特定的 powershell 窗口

我正在尝试结束从以SYSTEM身份运行的任务中生成的powershell窗口。我没有进程的ID,因为我通过psexec启动它以便能够设置sessionID。任务和目标powershell进程在不同的session中。我认为设置窗口标题然后查询窗口标题会很简单,但我遇到了问题,因为在系统下运行的进程似乎看不到窗口标题。例如当我运行get-processpowershell|format-table-propertyName,MainWindowTitle作为用户我得到:NameMainWindowTitle-------------------powershellAdministrato

c++ - 在 Win7 X64 上使用 Qt Access MS Access 数据库

我曾经有一个Qt应用程序,它使用以下代码连接到MSAccess数据库(名为JSpo2014.accbd):QSqlDatabasedb=QSqlDatabase::addDatabase("QODBC");db.setDatabaseName("Driver={MicrosoftAccessDriver(*.mdb,*.accdb)};FIL={MSAccess};DSN='';DBQ=C:\\2014\\bd\\JSpo2014.accdb");db.open();我的Qt应用程序是使用QtCreator开发的,使用Qt5.3.0forMinGWx86。它过去在这些配置上运行良好:安

windows - Windows下如何在Qt Creator中调试?

我想在Linux和Windows中拥有相同的开发环境,所以我决定使用QtCreator。但由于某些未知原因,我无法在Windows7下的QtCreator中跟踪我的项目。我将我的程序编译为DEBUG目标,生成的可执行文件包含所有调试信息。之后,我按F10键跳过main函数,但不是跳过它,而是让程序运行。通过F11进入执行相同的操作。首先,我尝试了MinGW附带的gdb,但QtCreator甚至拒绝运行它,提示它应该支持Python。之后,我从下载并安装了支持Python的gdbhttp://download.qt-project.org/development_releases/pre

c# - 更改外部窗口的最小尺寸

是否可以更改外部窗口的最小尺寸并调整它的大小。假设外部应用程序窗口的大小为(400,400),最小大小为(200,200),我们有什么办法可以将其更改为(100,100)。我有外部窗口的句柄。我尝试使用MoveWindow函数internalstaticexternboolMoveWindow(IntPtrhWnd,intX,intY,intnWidth,intnHeight,boolbRepaint);但在窗口达到最小尺寸后无法执行此操作。不可能这样做吗?我愿意使用托管的c#代码,例如UI自动化,甚至是Windowsapi、pinvoke等。有什么建议吗?

windows - 没有窗口的 SDL(Windows 服务)

我需要在Windows中将SDL作为服务应用程序的一部分使用。应用基础只是对用SDL打开的3D文件进行截图,开箱即用。问题是当应用程序在Windows的服务上下文中启动时,SDL_Init会报错。Nodisplaysavailable我知道,如果我不使用窗口,我将不会有来自键盘和鼠标的输入,反正我的应用程序不需要它们。有什么方法可以让SDL在Windows上脱离屏幕吗?听说过mesa/osmesa,不过好像只在Linux上有 最佳答案 在我看来,这可以通过更改您的服务属性以及可能使用Windows注册表的一些技巧来完成。我没有尝试过

windows - 如何将非客户区扩展到小于 16 像素的窗口?

我正在做一个项目,需要我在屏幕上水平绘制一条细线并垂直拖动它。为了增加一点风格,我尝试将DWM玻璃效果添加到窗口,以便它与Windows7和8中的窗口边界相匹配(尽管我知道我不会在Windows8中获得透明度)。我通过使用sheetofglass创建一个非客户区扩展到客户区的子窗口来画线。像这样使用DwmExtendFrameIntoClientArea技巧:MARGINSmargins={-1,-1,-1,-1};DwmEnableComposition(DWM_EC_ENABLECOMPOSITION);DwmExtendFrameIntoClientArea(DIV_HWND,&

c++ - 在窗口上显示 STL 容器的内容?窗口.h

基本上我想做的是在父窗口的子窗口上显示map的内容。这两个部分并排映射键和值。我是否应该遍历map,将值分别保存在char数组中,然后将其传递给函数?CreateWindow("STATIC",MyMap,WS_VISIBLE|WS_CHILD,150,80,300,200,hwnd,NULL,NULL,NULL);有什么办法吗?当我必须显示一个数组时,我只需简单地写下数组的名称,它就会显示出来……还有字符串……我可以为map做什么? 最佳答案 CreateWindow函数的标题参数需要一个“LPCTSTR”字符串。首先从map生成

c++ - 使用 PostMessage 将文本发送到非事件窗口虽然无法发送类次

好的,所以我创建了一个非常简单的SendText函数voidSendText(stringstr){for(std::string::iteratorit=str.begin();it!=str.end();++it){PostMessage(h,WM_KEYDOWN,VkKeyScan(*it),0);}return;}问题很明显,但解决方法不是。如果发送字符串世界,您好!输出的文本是“helloworld1”...但是,根据此应用处理我的消息的方式,我无法简单地检查是否需要保持轮类并发送VK_SHIFT消息。基本上,应用程序不处理KEYDOWN和KEYUP消息,它只是将它们视为按键

c++ - Qt 工具提示在显示时将窗口置于最前面

[Windows7上的Qt5.4.2]在同一个Qt应用程序中创建两个窗口(QDialog或QMainWindow)。他们每个人都有一个相关的工具提示。定位窗口d2部分重叠窗口d1。将鼠标悬停在d2窗口上,将看到工具提示“d2窗口”弹出。问题是鼠标悬停在d1窗口上不仅会显示工具提示“d1窗口”,还会将窗口d1移到前面。走到最前面不是理想的行为。此外,单击d2窗口客户区不会将d2移至前台。显示工具提示时如何不让窗口出现?我已经设置了WA_AlwaysShowToolTips和WA_ShowWithoutActivating标志。*只有一个qt窗口时似乎不会出现这个问题,但我的设计需要多个窗